package org.abc.uiCore.list
{

	import flash.display.MovieClip;
	import flash.display.Sprite;
	
	import org.abc.uiCore.vo.ListVo;

	/**
	 * @describe  	素材里面将CP的位置已经摆放ok了
	 * 				CP：不需要，该类中不需要生成新的CP
	 * @author  	Mr.zheng
	 * @website 	http://blog.sina.com.cn/zihua2007
	 * @time		2011-8-24 17:01
	 */
	public class MaterialListView extends AbcListView
	{
		/**
		 * cp的前缀 
		 */
		protected var _prefix:String;
		/**
		 * cp所在的容器 
		 */
		protected var _contain:Sprite;

		/* public function */

		/* override function */
		/**
		 * 构造函数中传入cp在素材中对应的容器和前缀，方便找到对应的cp
		 * @notice 2011-8-30 11:45
		 * 			构造函数中增加参数 contain prefix
		 * 			解决在一个DzBindView对象中可能存在多个列表的情况
		 * 			contain，提供了cp素材所在的容器位置
		 * 			prefix，指明了contain中的素材，哪些是可用的
		 *
		 * @param	listVo.contain		cp所在的容器
		 * @param	listVo.prefix		cp在容器中实例名的前缀
		 */
		override public function setParams(listVo:ListVo):void
		{
			_contain=listVo.contain;
			_prefix=listVo.prefix;
			/** super.setParams(listVo);最后将执行listVo.dispose()
			 * 	因此，该函数必须在最后执行*/
			super.setParams(listVo);
		}

		override protected function createCpDll():void
		{
			var cp:AbcCP;
			var mc:MovieClip;
			for (var i:int=0; i < _pageNum; i++)
			{
				/** 将素材中的cpi_CPS绑定到cp中，这里要注意，需要将cp的坐标按照cpi_CPS坐标来赋值 */
				cp=new _CP();
				mc=_contain.getChildByName(_prefix + i + "_CPS") as MovieClip;
				cp.x=mc.x;
				cp.y=mc.y;
				cp.bindView(mc);
				cp.init();
				_contain.addChild(cp);
				_cpDll.append(cp);
			}
		}

		override protected function showCp():void
		{
			//该类中，素材已经按照固定的位置摆放完毕。不需要重新摆放
		}
	/* private function */
	}

}
